home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / Pascal OS8 / Everything / ModalText.p < prev    next >
Encoding:
Text File  |  1998-10-30  |  4.3 KB  |  196 lines  |  [TEXT/CWIE]

  1. { ModalText.p -- Modal dialog }
  2. { Created 10/30/98 1:06 PM by AppMaker }
  3.  
  4. Unit ModalText;
  5. Interface
  6.  
  7. Uses
  8.     Types,
  9.     Quickdraw,
  10.     Controls,
  11.     Dialogs,
  12.     Events,
  13.     Lists,
  14.     Menus,
  15.     TextEdit,
  16.     DModalTextData,
  17.     AMDialog;
  18.  
  19. type
  20.     CModalText        = object (AMDialog)
  21.  
  22.     {data members}
  23.         mData:        DModalTextData;
  24.  
  25.     mOKHandle:        ControlHandle;
  26.     mSmallHandle:        ControlHandle;
  27.     mLargeHandle:        ControlHandle;
  28.     mX12345Handle:        ControlHandle;
  29.     mX12345e6Handle:        ControlHandle;
  30.     mPasswordHandle:        ControlHandle;
  31.     mDateHandle:        ControlHandle;
  32.     mTimeHandle:        ControlHandle;
  33.     mStyledHandle:        ControlHandle;
  34.  
  35.     {methods - public}
  36.         Procedure ConnectToData    (inData:    AMSignaler); Override;
  37.  
  38.     {methods - internal}
  39.         Procedure FinishMake; Override;
  40.         Procedure DoItem    (inItemHit:    SInt16); Override;
  41.         Procedure DataChanged    (inDataID:    longint); Override;
  42.  
  43.     end;
  44.  
  45. {----------}
  46. Function NewModalText: CModalText;
  47.  
  48. {----------}
  49. Function GetModalText    (ioData:    DModalTextData): Boolean;
  50.  
  51. {----------}
  52. Implementation
  53.  
  54. Uses
  55.     ResourceDefs,
  56.     ControlUtils,
  57.     Miscellany;
  58.  
  59. const
  60.     kOKButton        = 1;
  61.     kSmallField        = 2;
  62.     kLargeField        = 3;
  63.     kX12345Field        = 4;
  64.     kX12345e6Field        = 5;
  65.     kPasswordField        = 6;
  66.     kDateField        = 7;
  67.     kTimeField        = 8;
  68.     kStyledField        = 9;
  69.  
  70.  
  71. {----------}
  72. Function NewModalText: CModalText;
  73. var
  74.     dialog:        CModalText;
  75. begin
  76.     dialog := nil;
  77.     New (dialog);
  78.  
  79.     if dialog <> nil then begin
  80.         dialog.Initialize;
  81.     end;
  82.     NewModalText := dialog;
  83. end;
  84.  
  85. {----------}
  86. Function GetModalText (
  87.     ioData:        DModalTextData): Boolean;
  88. Var
  89.     result:            Boolean;
  90.     dialog:            CModalText;
  91. begin
  92.     result := false;
  93.     dialog := NewModalText;
  94.  
  95.     result := dialog.RunModal (DLOG_ModalText, ioData);
  96.  
  97.     dialog.Free;
  98.     Dispose (dialog);
  99.  
  100.     GetModalText := result;
  101. end;
  102.  
  103. {----------}
  104. Procedure CModalText.FinishMake;
  105. var
  106.     errCode:        OSErr;
  107. begin
  108.     mOKHandle := GetControlItem (kOKButton);
  109.     SetDefaultState (mOKHandle, true);
  110.     errCode := SetDialogDefaultItem (mDialog, kOKButton);
  111.     mSmallHandle := GetControlItem (kSmallField);
  112.     mLargeHandle := GetControlItem (kLargeField);
  113.     mX12345Handle := GetControlItem (kX12345Field);
  114.     mX12345e6Handle := GetControlItem (kX12345e6Field);
  115.     mPasswordHandle := GetControlItem (kPasswordField);
  116.     mDateHandle := GetControlItem (kDateField);
  117.     mTimeHandle := GetControlItem (kTimeField);
  118.     mStyledHandle := GetControlItem (kStyledField);
  119. end;
  120.  
  121. {----------}
  122. Procedure CModalText.ConnectToData (
  123.     inData:        AMSignaler); Override;
  124. begin
  125.     inherited ConnectToData (inData);
  126.     mData := DModalTextData (inData);
  127.  
  128.     SetControlText (mSmallHandle, mData.GetSmall2);
  129.     SetControlText (mLargeHandle, mData.GetLarge2);
  130.     SetControlTextValue (mX12345Handle, mData.GetX12346);
  131.     SetControlTextFloat (mX12345e6Handle, mData.GetX12345e7);
  132.     SetControlText (mPasswordHandle, mData.GetPassword2);
  133.     SetClockDateTime (mDateHandle, mData.GetDate2);
  134.     SetClockDateTime (mTimeHandle, mData.GetTime2);
  135.     SetControlText (mStyledHandle, mData.GetStyled2);
  136. end;
  137.  
  138. {----------}
  139. Procedure CModalText.DoItem (
  140.     inItemHit:        SInt16);
  141. begin
  142.     case inItemHit of
  143.     kOKButton:
  144.             SetResult (true);
  145.     kSmallField:
  146.             mData.SetSmall2 (GetEditTextStr (mSmallHandle));
  147.     kLargeField:
  148.             mData.SetLarge2 (GetEditTextChars (mLargeHandle));
  149.     kX12345Field:
  150.             mData.SetX12346 (GetControlTextValue (mX12345Handle));
  151.     kX12345e6Field:
  152.             mData.SetX12345e7 (GetControlTextFloat (mX12345e6Handle));
  153.     kPasswordField:
  154.             mData.SetPassword2 (GetEditTextPasswordStr (mPasswordHandle));
  155.     kDateField:
  156.             mData.SetDate2 (GetClockDateTime (mDateHandle));
  157.     kTimeField:
  158.             mData.SetTime2 (GetClockDateTime (mTimeHandle));
  159.     kStyledField:
  160.             mData.SetStyled2 (GetEditTextChars (mStyledHandle));
  161.  
  162.     end; {switch}
  163. end;
  164.  
  165. {----------}
  166. Procedure CModalText.DataChanged (
  167.     inDataID:        longint); Override;
  168. begin
  169.     if inDataID = idSmall2 then begin
  170.         SetControlText (mSmallHandle, mData.GetSmall2);
  171.     end;
  172.     if inDataID = idLarge2 then begin
  173.         SetControlText (mLargeHandle, mData.GetLarge2);
  174.     end;
  175.     if inDataID = idX12346 then begin
  176.         SetControlTextValue (mX12345Handle, mData.GetX12346);
  177.     end;
  178.     if inDataID = idX12345e7 then begin
  179.         SetControlTextFloat (mX12345e6Handle, mData.GetX12345e7);
  180.     end;
  181.     if inDataID = idPassword2 then begin
  182.         SetControlText (mPasswordHandle, mData.GetPassword2);
  183.     end;
  184.     if inDataID = idDate2 then begin
  185.         SetClockDateTime (mDateHandle, mData.GetDate2);
  186.     end;
  187.     if inDataID = idTime2 then begin
  188.         SetClockDateTime (mTimeHandle, mData.GetTime2);
  189.     end;
  190.     if inDataID = idStyled2 then begin
  191.         SetControlText (mStyledHandle, mData.GetStyled2);
  192.     end;
  193. end;
  194.  
  195. End.
  196.